// pages/profile/profile.js
const app = getApp();
const auth = require('../../utils/auth');

Page({
  /**
   * 页面的初始数据
   */
  data: {
    isLoggedIn: false,
    userInfo: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.checkLoginStatus();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 每次显示页面时检查登录状态，确保状态是最新的
    this.checkLoginStatus();
  },

  /**
   * 检查登录状态
   */
  checkLoginStatus: function () {
    // 直接从auth模块获取最新状态，确保与全局状态同步
    const isLoggedIn = auth.checkLoginStatus();
    const userInfo = auth.getUserInfo();
    
    console.log('个人中心页面 - 登录状态:', isLoggedIn);
    console.log('个人中心页面 - 用户信息:', userInfo);
    
    // 更新全局状态
    app.globalData.isLoggedIn = isLoggedIn;
    app.globalData.userInfo = userInfo;
    
    this.setData({
      isLoggedIn: isLoggedIn,
      userInfo: userInfo
    });
  },

  /**
   * 退出登录
   */
  logout: function () {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 使用app中的logout方法退出登录
          app.logout();

          // 更新页面数据
          this.setData({
            isLoggedIn: false,
            userInfo: null
          });

          wx.showToast({
            title: '已退出登录',
            icon: 'success',
            duration: 2000
          });
        }
      }
    });
  },

  /**
   * 跳转到登录页面或直接触发登录流程
   */
  goToLogin: function () {
    console.log('触发登录流程');
    // 直接调用登录方法，而不是跳转到登录页面
    auth.wxLogin()
      .then(res => {
        console.log('登录成功:', res);
        // 更新页面数据
        this.checkLoginStatus();
        // 显示成功提示
        wx.showToast({
          title: '登录成功',
          icon: 'success',
          duration: 2000
        });
      })
      .catch(err => {
        console.error('登录失败:', err);
        wx.showToast({
          title: '登录失败，请重试',
          icon: 'none',
          duration: 2000
        });
        
        // 如果需要跳转到专门的登录页面
        // wx.navigateTo({
        //   url: '/pages/login/login'
        // });
      });
  },

  /**
   * 页面导航
   */
  navigateTo: function (e) {
    const url = e.currentTarget.dataset.url;

    // 检查是否需要登录才能访问（移除了历史记录页面）
    const requiresLogin = ['/pages/vip/vip'];

    if (requiresLogin.includes(url) && !this.data.isLoggedIn) {
      wx.showModal({
        title: '提示',
        content: '该功能需要登录后才能使用',
        confirmText: '去登录',
        cancelText: '取消',
        success: (res) => {
          if (res.confirm) {
            this.goToLogin();
          }
        }
      });
      return;
    }

    wx.navigateTo({
      url: url
    });
  },

  /**
   * 跳转到VIP会员页面
   */
  goToVip: function () {
    if (!this.data.isLoggedIn) {
      wx.showModal({
        title: '提示',
        content: '该功能需要登录后才能使用',
        confirmText: '去登录',
        cancelText: '取消',
        success: (res) => {
          if (res.confirm) {
            this.goToLogin();
          }
        }
      });
      return;
    }
    
    wx.navigateTo({
      url: '/pages/vip/vip'
    });
  },

  /**
   * 跳转到意见反馈页面
   */
  goToFeedback: function () {
    wx.navigateTo({
      url: '/pages/feedback/feedback'
    });
  },

  /**
   * 处理客服会话
   */
  handleContact: function (e) {
    console.log('客服会话事件:', e.detail);
    
    if (e.detail.errMsg === 'contact:ok') {
      console.log('成功进入客服会话');
      wx.showToast({
        title: '正在连接客服...',
        icon: 'success',
        duration: 2000
      });
    } else {
      console.log('进入客服会话失败，展示降级方案');
      this.showCustomerServiceDialog();
    }
  },

  /**
   * 展示客服联系方式（降级方案）
   */
  showCustomerServiceDialog: function () {
    wx.showModal({
      title: '联系客服',
      content: '请添加微信号：yuyin-service 联系客服，或者拨打客服电话：400-123-4567',
      confirmText: '复制微信号',
      cancelText: '取消',
      success: (res) => {
        if (res.confirm) {
          wx.setClipboardData({
            data: 'yuyin-service',
            success: () => {
              wx.showToast({
                title: '微信号已复制',
                icon: 'success',
                duration: 2000
              });
            }
          });
        }
      }
    });
  }
})
